#ifndef HUNBASE_H
#define HUNBASE_H

typedef int hunBool;
typedef char hunChar;
typedef unsigned char hunUChar;
typedef int hunInt;
typedef unsigned int hunUInt;
typedef long hunLong;
typedef unsigned long hunULong;
typedef float hunFloat;
typedef double hunDouble;
typedef unsigned int hunSize;
#define hunTrue (1)
#define hunFalse (0)

enum hunType_e
{
    hunTypeUnknown,
    hunTypeBool,
    hunTypeChar,
    hunTypeUChar,
    hunTypeInt,
    hunTypeUInt,
    hunTypeLong,
    hunTypeULong,
    hunTypeFloat,
    hunTypeDouble,
};

void *hunMalloc(hunSize size);
void *hunCalloc(hunSize size);
void hunFree(void *ptr);


// -------- Macros ----------
//#ifdef HUN_DEBUG_ON
    #define hunR(format, arg ...)\
        printf("\033[01;31m"format"\033[00m", ##arg);
    #define hunG(format, arg ...)\
        printf("\033[01;32m"format"\033[00m", ##arg);
    #define hunB(format, arg ...)\
        printf("\033[01;34m"format"\033[00m", ##arg);
    #define hunY(format, arg ...)\
        printf("\033[01;33m"format"\033[00m", ##arg);
//#else
//    #define hunR ;
//    #define hunG ;
//    #define hunB ;
//    #define hunY ;
//#endif

#endif
